﻿using System;
using System.Collections.Generic;

namespace Pap.Data
{
    /// <summary>
    /// 
    /// </summary>
    public interface ILoanFeasibilityStudy : IEntity
    {
        /// <summary>
        /// Gets or sets the loan feasability study ID.
        /// </summary>
        /// <value>
        /// The loan feasability study ID.
        /// </value>
        Guid LoanFeasabilityStudyID { get; set; }
        /// <summary>
        /// Gets or sets the loan payment method ID.
        /// </summary>
        /// <value>
        /// The loan payment method ID.
        /// </value>
        Guid LoanPaymentMethodID { get; set; }
        /// <summary>
        /// Gets or sets the loan ID.
        /// </summary>
        /// <value>
        /// The loan ID.
        /// </value>
        Guid LoanID { get; set; }
        /// <summary>
        /// Gets or sets the feasability study date.
        /// </summary>
        /// <value>
        /// The feasability study date.
        /// </value>
        DateTime FeasabilityStudyDate { get; set; }
        /// <summary>
        /// Gets or sets the revenue amount.
        /// </summary>
        /// <value>
        /// The revenue amount.
        /// </value>
        double RevenueAmount { get; set; }
        /// <summary>
        /// Gets or sets the cost amount.
        /// </summary>
        /// <value>
        /// The cost amount.
        /// </value>
        double CostAmount { get; set; }
        /// <summary>
        /// Gets or sets the profit amount.
        /// </summary>
        /// <value>
        /// The profit amount.
        /// </value>
        double ProfitAmount { get; set; }
        /// <summary>
        /// Gets or sets the return on investment percent.
        /// </summary>
        /// <value>
        /// The return on investment percent.
        /// </value>
        decimal ReturnOnInvestmentPercent { get; set; }
        /// <summary>
        /// Gets or sets the loan amount.
        /// </summary>
        /// <value>
        /// The loan amount.
        /// </value>
        double LoanAmount { get; set; }
        /// <summary>
        /// Gets or sets the loan payment period.
        /// </summary>
        /// <value>
        /// The loan payment period.
        /// </value>
        int LoanPaymentPeriod { get; set; }
        /// <summary>
        /// Gets or sets the notes.
        /// </summary>
        /// <value>
        /// The notes.
        /// </value>
        string Notes { get; set; }

        /// <summary>
        /// Gets the loan payment method.
        /// </summary>
        ILookUpEntity LoanPaymentMethod { get; }

        /// <summary>
        /// Gets the cusomter loan.
        /// </summary>
        ICustomerLoan CusomterLoan { get; }
        /// <summary>
        /// Gets the attachements.
        /// </summary>
        IEnumerable<ILoanFeasibilityStudyAttachment> Attachements { get; }
    }
}
